A variety of network architectures are available for designing and implementing a telecommunications network. The ring topology is found very frequently in network architectures. The dual ring topology, in particular, offers numerous advantages over a single ring topology, such as reliability and bandwidth flexibility to name a few. A telecommunications network in the dual ring topology uses two physically separated rings, one for each traffic direction, clockwise (CW) and counter-clockwise (CCW).
A new IEEE protocol is in the process of being defined (802.17) for a flexible and resilient dual ring topology which is called Resilient Packet Ring (RPR for short). RPR is a MAC layer protocol dedicated to dual ring architectures but it is a “plug and play” design without a software based station management transfer (SMT) protocol or ring master negotiation as seen in other ring based MAC protocols. RPR provides a scalable LAN/MAN/RAN/WAN architecture with shared access method, spatial reuse, and resiliency through fault protection method. Among many other features, RPR supports multiple classes of services; e.g., low-delay guaranteed rate, bounded delay committed rate, and best effort service classes. It also proposes an efficient use of bandwidth by ring capacity reuse downstream of unicast destination (called spatial reuse or reclamation). By spatial reuse, the destination station strips packets addressed to it, thus allowing reclamation of unused committed capacity further downstream. RPR also provides flow control per service class to regulate traffic introduced by clients and point-of-congestion aware flow control (allowing per destination queuing in client). Furthermore it performs weighted fairness access among stations using the ring, i.e., each station is assigned a proportion of the ring's available bandwidth.
The dual rings are made up of clockwise and counter-clockwise ringlets as shown in FIG. 1. As an example, four stations, A, B, C and D (also called nodes) are connected in the dual ring configuration. The RPR protocol operates by sending data traffic in one direction (known as “downstream”) on one ringlet (one of the two rings) and its corresponding control information in the opposite direction (known as “upstream”) on the opposite ringlet. The stations are able to send data on either ringlet. Generally the shorter of the two possible paths to a given destination is used, based on the node discovery scheme, but this is not required, due for instance to congestion or malfunction on one of the links. Referring to FIG. 1, node A has an ingress ring attachment 10 and an egress ring attachment 12 on each ringlet. Traffic arriving on ingress is destined to transit the node via egress ring attachment 12, or is dropped off the ring at link 14. Traffic is inserted (or added) on the ring via link 16.
Bandwidth management features are important aspects of the RPR protocol. In RPR systems, nodes cooperate to maximize traffic on the rings. They advertise information about current loads so that other nodes may determine how much traffic they can send through that node. Furthermore, since the ring is a shared media, some sort of access control is necessary to ensure fairness and to bound latency. Access control can be broken into two types which can operate in tandem:
Global access control—controls access so that everyone gets a fair share of the global bandwidth of the ring.
Local access control (spatial reuse)—grants additional access beyond that allocated globally to take advantage of segments of the ring that are less than fully utilized.
FIG. 2 includes six nodes in a ring and shows an example of a case where both global and local accesses are required. In the figure, node B is sending data to node C as shown by 20 while node A is sending data to node D, as shown by 22. The both connections share the bandwidth on the span between nodes B and C. Meanwhile node E is sending data to node F as shown by 24. In this case, nodes A and B are given ½ of the bandwidth each. Node E, however, will also get a fair share of ½ of the bandwidth on a global allocation basis. But from a local perspective, node E should be able to get all of the bandwidth since its bandwidth does not interfere with the fair shares of nodes A and B. The spatial reuse will ensure that all the unicast traffic will be stripped at its destination, freeing the bandwidth for reclamation by nodes downstream.
In the RPR networks, a ring channel is defined to be a logical path from a given source node on the ring to a given destination node on the ring, where the source and destination nodes are not necessarily adjacent. A given channel between two nodes on the ring uses a single ring. For sake of description, we describe the flow control algorithm assuming that all channels use the clockwise ring.
The RPR protocol requires that the system should be able to allocate and guarantee bandwidth to each channel on the ring. Furthermore, it has been proposed to provide lossless delivery of traffic over a channel so as to avoid complex traffic management functions in the ring MAC layers where the transit buffer is located.
The prior art is described within presentations to the IEEE 802.17 working group. Conexant proposes a solution which is illustrated in FIG. 3. The traffic flow and queuing architecture is described on node A shown in FIG. 1. The proposed solution describes a flow control mechanism whereby at each node the rate of the insert (or add) traffic, which is transmitted into the ring, is measured. The rate of the insert traffic is communicated in a flow control message to the other nodes in the ring if the transit buffer 30 on the node is congested. The service of each add queue 32 is limited by the shaper 34 to be equal to the minimum insert rate of all congested nodes on the ring. The result is that each node on the ring is permitted to insert an equal amount of traffic into the ring.
The Conexant solution is inadequate for two reasons. First, it requires that every node receive an equal share of the available ring bandwidth at the most congested point in the network. Second, and most importantly, the solution is blocking in that traffic which does not traverse the most congested point in the network, is blocked from entering the network potentially unnecessarily.
Lantern Communications proposes a flow control algorithm which is illustrated in FIG. 4. The Lantern solution defines a weight for each channel (i.e. source to destination flow) that traverses the node. Therefore, there is a separate add queue 40 for each flow (also called channel). A queue for a flow from node A to node B, a queue for a flow from node A to node C and so on. These queues may be virtual queues, i.e., a partitioned storage medium. The algorithm then calculates the shaping rate, fi, for each flow according to the following formula.
      fi    =          ri      +                        wi                                    ∑              active                                                                    ⁢                                                  ⁢            wi                          ×                  (                      C            -                                          ∑                active                                                                              ⁢                                                          ⁢              ri                                )                      ,where wi is the weight for flow i, flow i transiting the node, and ri is the reserved (i.e. minimum) rate. C is the capacity of the egress link. Shaper 42 enforces the shaping rate by rate limiting weighted fair queue. The equation can be described by describing each of the three terms. The first term is the reserved rate and so the shaping rate cannot drop below the reserved rate. The third term is the available bandwidth at the node. It is equal to any unreserved bandwidth plus the bandwidth reserved but not being used by inactive flows. The second term represents the weighted share of the bandwidth that can be used by the flow.
The Lantern solution achieves this flow control by extracting the terms in the equation which are known locally to the node which generates the flow control message. That is, it defines the term, bandwidth allocation factor (BAF), by
      BAF    =                  C        -                              ∑            active                                                          ⁢                                          ⁢          ri                                      ∑          active                                                ⁢                                  ⁢        wi              ,and propagates the BAF term to each node in the ring. Each node collects the BAF terms from all other nodes on the network, and then calculates the shaping rate for a given flow using the minimum BAF from all nodes which the flow transits, as follows:fm=rm+wm×min(BAFj),where the index, m, pertains to the flows which originate at the local node, and the index, j, pertains to the nodes which are traversed by flow, m and BAFj is the BAF for the egress ring link of node j. The Lantern solution is inadequate for two reasons. First, the equation which calculates the available bandwidth sums the reserved rates of all active channels. However, simply because a channel is active, it does not mean that it is utilizing its full reserved rate. It may be using less. The Lantern solution does not take this into account. Second, the equation that calculates the available bandwidth does not take into account whether a flow which is allocated its fair share of the available bandwidth actually uses all of it. Any available bandwidth which is unused by the flow can be redistributed to other flows. As a result of these two problems, the Lantern solution results in underutilization of the network.
AuroraNetics proposes to improve upon the Conexant solution by assigning a weight to each node in the ring. In this case, the rate at which a node can insert traffic to a ring is given by
      f    =                  w        wc            ×      rate        ,where w is the weight of the node for which we are calculating f, and wc is the weight of the congested node. The term, rate, is the rate of “add” traffic at the congested node.
The AuroraNetics solution is inadequate because it does not solve the blocking problem which is present in the Conexant solution.
The problems with each prior art solution are described in the preceding section. In summary, none of the prior art solutions provide full network utilization under all traffic scenarios.
The inventor realized that the RPR flow control problem is similar to the ATM ABR flow control problem and the ABR flow control algorithms can be used in the RPR application.
U.S. Pat. No. 6,385,168 May 7, 2002 Davis et al describes in detail the flow control problem and proposed solutions for the ABR service of ATM network. In the ATM, there are a several classes of service categories, some being committed rate services and others being available rate services. Available Bit Rate (ABR) service is one of the available rate services. The flow control of ABR is achieved by the source sending special resource management (RM) cells through the network. Each switch in the network indicates its congestion status by optionally writing into the RM cell and forwarding the cell into the next switch in the data path. Finally, the destination turns the RM cell back towards the source and the switches in the backward data path mark congestion information into the RM cell which is ultimately received by the source. The source then adjusts its sending rate in response to the information contained in the RM cell. Referring to FIG. 5, ABR queue 50 represent the aggregate count of all ABR cells queued. QD indicates the total queue depth utilized by all ABR connections. Line T is a configurable threshold which represents a pre-selected target for the queue depth. The output cell flow contains both high (committed) priority and ABR traffic. Periodically the ABR queue generates the function g(QD, T) and passes the result to the ER Algorithm 52. The ER Algorithm calculates the offered bandwidth, OBW(k), k being iterated measurements, according to the formula;OBW(k)=g(QD, T)*OBW(k−1),where g(QD, T) is given in one embodiment by either:
                              g          ⁡                      (                          QD              ,              T                        )                          =                ⁢                              1            -                          x              ⁢                                                          ⁢              if              ⁢                                                          ⁢              QD                                >                      T            ⁢                                                  ⁢            or                                                  =                ⁢                              1            +                          x              ⁢                                                          ⁢              if              ⁢                                                          ⁢              QD                                <=                      T            .                              The parameter T is a configurable threshold, and x is a small real number in the range of [0,1]. The function g(QD, T) is only dependent on global queue congestion and threshold. In an alternative embodiment, g(QD, T1, T2) could take a form of:
                              g          ⁡                      (                          QD              ,                              T                ⁢                                                                  ⁢                1                            ,                              T                ⁢                                                                  ⁢                2                                      )                          =                ⁢                              1            -                          x              ⁢                                                          ⁢              if              ⁢                                                          ⁢              QD                                >                      T            ⁢                                                  ⁢            1                                                  =                ⁢                              1            ⁢                                                  ⁢            if            ⁢                                                  ⁢            T            ⁢                                                  ⁢            1                    >=          QD          >                      T            ⁢                                                  ⁢            2                                                  =                ⁢                              1            +                          x              ⁢                                                          ⁢              if              ⁢                                                          ⁢              QD                                <=                      T            ⁢                                                  ⁢            2                              where T1 and T2 are configurable thresholds and x is a small real number in the range of [0,1]. This second form employs a dead band in which the offered bandwidth is neither increased or decreased. In general terms the number of bands in the queue depth may be increased such that the update to OBW(k) may assume an arbitrary function in the variable.
An applicant's pending application Ser. No. 09/295,821 filed on Apr. 21, 1999, entitled “Method and Apparatus for Providing Data Flow Control of a Transmission Port” describes yet another alternative for calculating a generic OBW for ABR traffic. In the pending application, generic OBW(k) is given by:OBW(k)=OBW(k−1)*ζ, where ζ=1+κΔQ,where ζ represents the OBW correctional variable, ΔQ represents a difference term derived from an input data rate and an output data rate of a transmission port and κ is a constant. A specific OBW(k) for each connection, i, supported by the node is obtained as follows:OBWi(k)=(OBW(k)/# of connections)*weighting factor,The weighting factor prioritizes the connections based on system rules user options, etc.
As mentioned earlier, these algorithms have been designed for flow control of the ABR traffic in the ATM systems. The present inventor realized that these algorithms can be applied equally to ring network, particularly RPR systems in which available bandwidth is distributed among the nodes on the ring under the principles of weighted fair queue and spatial reuse of the bandwidth.